// 单一类型
let bool: boolean = true;

let str: string = "123";

let num: number = 123;

let n: null = null;

let un: undefined = undefined;

// 复合类型
let strNum: string | number | boolean = "123";

// 数组：只能存在同一种类型组成的数组
const array: number[] = [1, 2, 3];

// 数组泛型
const arrays: Array<number> = [1, 2, 3, 4, 5];

// 元组: 数组中可以允许有不同类型的元素
const tuple: any[] = [1, "2", true];

// 数组泛型
const strNumArray: Array<string | number> = [1, "2"];

// 枚举
enum codeStatus {
  "error" = 400,
  "success",
}

const getStatus = codeStatus["success"];

// any: 任何类型
let anyStatus: any = "123";
anyStatus = 123;
anyStatus = true;
anyStatus = null;
anyStatus = {};
anyStatus = [];

// void: 无类型，函数不能有返回值
function get(): void {}

// never: 表示不存在的类型
function getError(): never {
  throw new Error("123");
}

function getwhile(): never {
  while (true) {}
}

// const type: number | string | null = null

// console.log((type as string).length)
